// theme banner spu sku address user
import {Http} from "../utils/http";

class Theme {
    static locationA = 't-1'
    static locationE = 't-2'
    static locationF = 't-3'
    static locationH = 't-4'

    themes = []

    async getThemes() {
        const themes = await Http.request({
            url: 'themes'
        })
        this.themes = themes.data
    }

    getHomeLocationA() {
        // 用一个方法封装wx.request后，使得wx.request只写一次，因为该方法内部有些可复用的代码  目的是：复用的代码也只写一次
        // 模块化思想：模块相互之间有相似的东西，能不能把模块细分，把通用部分单独抽离出来成另一个更小的x模块，其它模块嵌套x模块
        // 这里模块可以是：类，方法
        // 1：同一个方法里有可复用的代码，那么考虑封装该方法；2：不同方法之间有可复用代码，那么抽离出该代码形成一个更小的方法供其它方法调用
        return this.themes.find(t => t.name === Theme.locationA)

    }

    getHomeLocationE() {
        return this.themes.find(t => t.name === Theme.locationE)
    }

    getHomeLocationF() {
        return this.themes.find(t => t.name === Theme.locationF)
    }

    getHomeLocationH() {
        return this.themes.find(t => t.name === Theme.locationH)
    }

    getHomeLocationESpu() {
        return Theme.getThemeSpuByName(Theme.locationE)
    }

    static async getThemeSpuByName(name) {
        const theme = await Http.request({
            url: 'spu'
        })
        return theme.data
    }


}

//处理异步调用：callback /  promise /  async await

export {
    Theme
}